实现scrapy的断点续爬
1.设置断点续爬:
在定时启动和关闭前,需要先设置断点续爬,将关闭前的数据保存,防止再次启动时
新建一个run.py文件from scrapy import cmdlinecmdline.execute("scrapy crawl douluo -s JOBDIR=crawls".split())
- 1
- 2
这样爬虫在正常结束时,会新建一个cralws文件夹,并将进度保存在里面
2.设置关闭时间
在启动时添加CLOSESPIDER_TIMEOUT=秒数
即可将爬虫设置成多少秒后自动停止运行from scrapy import cmdlinecmdline.execute("scrapy crawl douluo -s CLOSESPIDER_TIMEOUT=3 -s JOBDIR=crawls".split())
- 1
- 2
这样,run.py文件就被编辑好了,用于运行scrapy爬虫
3.新建一个runs.py,用于将run文件放入循环中
若直接在run.py中将cmdline.execute放入循环,程序在cmd结束后就结束了,并不会循环,因此新建一个py文件,用于将启动cmd放入循环,这样每次爬取结束后程序都不会结束
具体代码如下:import os import time while True: os.system('run.py') time.sleep(5)
- 1
- 2
- 3
- 4
- 5
这样,我们就将scrapy设置成了启动后3s自动停止,停止后5s自动启动,并且拥有断点续爬的功能
import os import time while True: os.system('run.py') time.sleep(5)
评论